package org.nf.box.mapper;


import org.nf.box.domain.Post;
import org.nf.box.web.vo.PostVO;

import java.util.List;

/**
 * @Author lzp
 * @Date 2024-11-29
 */
public interface PostMapper {

    /**
     *  所有帖子
     *  status为 空 获取所有帖子
     *  status为 public 获取公开帖子
     *  status为 private 获取私有帖子
     * @param status 状态
     * @return 帖子列表
     */
    List<PostVO> getPosts(String status);
    /**
     *  获取视频帖子
     * @param status 状态
     * @return 帖子列表
     */
    List<PostVO> getVideo(String status);

    /**
     *  获取推荐帖子
     * @param status 状态
     * @return 帖子列表
     */
    List<PostVO> getRecommend(String status);
    /**
     * 发布帖子
     * @param post 要发布的帖子
     */
    void addPost(Post post);

    /**
     * 编辑帖子
     * @param post 要编辑的帖子
     */
    void updatePost(Post post);

    /**
     * 删除帖子
     * @param postId 帖子id
     */
    void deletePost(Integer postId);

    /**
     * 帖子详情
     * @param postId 帖子id
     * @return 帖子详情
     */
    PostVO postDetails(Integer postId);

    /**
     * 根据id查询帖子
     * @param postId 帖子id
     * @return 帖子
     */
    Post getPostById(Integer postId);

    /**
     * 查询帖子点赞数
     * @param postId 帖子id
     * @return 点赞数
     */
    Integer getLikeCount(Integer postId);

    /**
     * 查询帖子评论数
     * @param postId 帖子id
     * @return 评论数
     */
    Integer getCommentCount(Integer postId);
}
